package com.zhouheng.springbootdesignpattern.observerpattern;

/**
 * 这里被观察事件只有一件，每个具体的观察者有自己的反应
 * 比如这里有两类ConcreteObserver1和ConcreteObserver2，不同的实现update的反应
 *
 * 我们也可以写多个观察事件
 *
 * @author 周恒
 * @date 20190401 17:18:21
 * @since v1.0
 */
public class Client {

    public static void main(String[] args) {
        Subject subject = new ConcreteSubject();
        //模拟买入的
        subject.add(new ConcreteObserver1("国泰君安机构席"));
        subject.add(new ConcreteObserver2("散户必哥"));
        subject.add(new ConcreteObserver2("散户小强"));
        subject.add(new ConcreteObserver1("华泰证券机构席"));
        //模拟股票下跌通知
        subject.doSomething();
    }

}
